package com.bit.cfdi.web.domain;

import static javax.persistence.GenerationType.IDENTITY;

import java.io.Serializable;
import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;

@Entity
@Table(name = "donataria")
public class Donataria implements Serializable {

	private static final long serialVersionUID = 826681692176971039L;
	private Long idDonataria;
	private String version;
	private String noAutorizacion;
	private Calendar fechaAutorizacion;
	private String leyenda;		
	private Long ultimaModificacionPor;
	private Calendar fechaModificacion;
	public final static String LEYENDA_VER_1_0 = "Este comprobante ampara un donativo, " +
			"el cual ser\u00E1 destinado por la donataria a los fines propios de su objeto social. " +
			"En el caso de que los bienes donados hayan sido deducidos previamente para los " +
			"efectos del impuesto sobre la renta, este donativo no es deducible. La reproducci\u00F3n " +
			"no autorizada de este comprobante constituye un delito en los t\u00E9rminos de las " +
			"disposiciones fiscales.";
	// Property accessors
	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id_donataria", nullable = false)
	public Long getIdDonataria() {
		return idDonataria;
	}
	
	public void setIdDonataria(Long idDonataria) {
		this.idDonataria = idDonataria;
	}	
	
	@Column(name = "version", length = 255)
	public String getVersion() {
		return version;
	}
	
	public void setVersion(String version) {
		this.version = version;
	}
	
	@Column(name = "no_autorizacion", length = 255)
	public String getNoAutorizacion() {
		return noAutorizacion;
	}
	
	public void setNoAutorizacion(String autorizacion) {
		this.noAutorizacion = autorizacion;
	}
	
	@Column(name = "fecha_autorizacion")
	@Temporal(TemporalType.TIMESTAMP)
	public Calendar getFechaAutorizacion() {
		return fechaAutorizacion;
	}
	
	public void setFechaAutorizacion(Calendar fechaAutorizacion) {
		this.fechaAutorizacion = fechaAutorizacion;
	}
	
	@Column(name = "leyenda", columnDefinition = "longtext")
	public String getLeyenda() {
		return leyenda;
	}
	
	public void setLeyenda(String leyenda) {
		this.leyenda = leyenda;
	}

	@Column(name = "ultima_modificacion_por")
	public Long getUltimaModificacionPor() {
		return ultimaModificacionPor;
	}

	public void setUltimaModificacionPor(Long ultimaModificacionPor) {
		this.ultimaModificacionPor = ultimaModificacionPor;
	}

	@Column(name = "fecha_modificacion")
	@Temporal(TemporalType.TIMESTAMP)
	@Version
	public Calendar getFechaModificacion() {
		return fechaModificacion;
	}

	public void setFechaModificacion(Calendar fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

}